package com.bubblegumproject.ogo.component;


/**
 * An Interceptor that may be applied to a component method.
 *
 * Interceptor's must be threadsafe: a new Interceptor is created for each method it is applied to and it survives
 * for the lifetime of the ComponentProxy object.
 *
 * @author Azubuko Obele (buko.obele@gmail.com)
 */
public interface Interceptor {

    public void initialize(Object configData);

    public Object execute(InvocationContext context) throws Throwable;

}
